HECTOR-V: A Heterogeneous CPU Architecture for a Secure RISC-V Execution Environment——2021
摘要
在本文中,我们将演示如何利用异类多核架构来实现安全的TEE设计。我们将安全处理器直接嵌入到我们的Hector-V架构中,以在安全域和非安全域之间提供强大的隔离。TEE和应用处理器的紧密耦合使Hector-V能够提供在不同设备之间建立安全通信通道的机制。我们进一步介绍了RISC-V安全协处理器(RVSCP),这是一个为TES量身定做的安全强化处理器。RVSCP提供硬件强制控制流完整性,并将I/O访问严格限制在某些执行状态.
论文研究目标
问题
- TEE on Virtual Processor,如SGX/TrustZone,REE与TEE共用同一个处理器,共享缓存与外设,无法防御侧信道攻击(如缓存攻击、暂时性攻击(transient attack))
- TEE on Co-Processor,如谷歌的Titan,三星的eSE,利用了一个额外的核心去执行trustlets,将执行流和缓存与REE隔离开来,可以有效缓解侧信道攻击。TEE核心与REE通常使用慢速接口如SPI,限制了TEE与REE的沟通效率,而且接口有被物理嗅探攻击的可能。
- TEE on SoC Processor,如苹果的Secure Enclave Processor(SEP)和微软的Pluton Processor。
贡献
在Hector-V架构中,应用处理器和TEE通过互连连接,实现了两个处理器之间的高速链接。此外,由于TEE嵌入到SoC中,因此集成到系统中的所有外围设备也可用于安全环境。为了管理外围设备共享并保护外围设备免受未经授权的访问,Hector-V进一步引入了安全I/O路径的概念。深入嵌套在通信结构和外围设备中的基于标识符的策略允许对连接的外围设备进行细粒度保护。在Hector-V中,访问权限管理是使用基于硬件的安全监视器来实现的。虽然安全监视器的所有者可以配置一组访问权限,但系统中的其他方可以通过咨询安全监视器来请求访问某些外围设备。通过引入安全监视器所有权转移的概念,我们进一步扩展了该机制,以动态地授予和拒绝对某些外围设备的访问。
此外,我们还介绍了RVSCP,这是一种安全强化的RISC-V处理器,专为用作TEE而定制。虽然Hector-V架构使用了独立的处理器作为TEE,但我们证明RVSCP通过利用Hector-V的功能进一步提高了TEE的安全性。RVSCP通过强制控制流的完整性来隔离可信执行环境中的应用程序。我们将控制流信息与安全I/O机制相结合,仅在达到预定义的控制流状态时授予对特定外围设备的访问权限。
方法
可信I/O path
可信I/O路径机制是Hector-V体系结构的核心元素。这一概念允许Hector-V安全地共享SoC上的设备,在外部用户和TEE或REE之间建立安全通信通道,并实现概念,如安全存储元素
Identifier, 标识符。在Hector-V中,标识符用来区分对外围设备的合法和非法访问。我们的系统使用的标识符由coreID、process ID和peripheral ID组成。虽然core ID永久性的且不可更改地分配给每个处理核,例如,一个用于应用处理器的ID和一个用于安全处理器的ID,但在设计时,process和外设ID可以由每个实体自己分配。
互联网络:AMBA AXI4总线网络。AMBA AXI4[5]协议被我们的低RISC基础平台和许多其他SoC设计用作互连,允许在该协议中嵌入多达1024位宽的用户定义信号。通过将ID嵌入到大多数AXI设备不使用的用户定义信号中,可以在没有任何协议开销的情况下传输ID。此外,此方法可确保在每个AXI请求中将标识符随地址和数据一起发送。由于核心ID直接硬编码到参与者的互连接口中,因此攻击者无法通过软件更改此ID。
外围设备有两种状态:声明(claimed)或未声明(unclaimed)。当在unclaimed状态下阻止所有数据信道请求时,在claimed状态下仅允许具有匹配识别符的请求,防火墙会阻止标识符不匹配的请求。
安全监视器
对于系统中包括的每个外围设备,安全监视器维护跟踪状态(声明或未声明)的表项和允许声明的设备的标识符列表。
要访问某个外围设备,请求者首先需要通过向安全监视器发送claim请求来声明该外围设备。然后,SM检查该外围设备当前是否未被认领,并验证该issuer的ID是否在允许访问该外围设备的标识符列表中。最后,安全监视器通过AXI4-Lite总线将issuer的ID发送到外围设备包装器,该包装器在其ID字段中设置该标识符。现在,issuer发出的每个AXI4请求的用户定义信号中传输的识别符与ID字段中的识别符匹配,并且请求者可以独占地访问外设。然而,如果请求者不被允许要求外围设备,即请求者的标识符不在特权实体列表中,则ID验证失败,并且安全监控器发回访问被拒绝的消息。如果请求者ID在外设的表项中,但外设当前被认领,则安全监视器通知issuer。Hector-V是一种合作方案,即当前要求外围设备的实体在使用后需要释放该外围设备。为了释放外围设备,实体向SM发送释放命令。安全监视器通过清除外围设备包装的ID字段来处理该请求。
为了缓解DOS攻击,实现了外设访问撤销机制。为了安全地撤回对某些外围设备的访问,Hector-V引入了撤回机制,系统中的任何实体都可以触发该撤回机制。虽然SM所有者发出的撤回请求总是被批准,但来自其他方的请求首先需要得到安全监视器的批准。当安全监视器收到撤回请求时,SM启动计时器,并通知外围设备的所有者。通过引入专用中断线路和由处理器为每个外围设备提供的中断服务例程(ISR)来实现外围设备所有者的通知。ISR实施清理功能,负责清除机密数据、停止当前事务以及正常释放相应的外围设备。在安全监视器到达超时并且ISR没有正常释放外围设备之后,SM通过清除防火墙中的ID字段来强制释放外围设备。
RVSCP
在RVSCP中,我们通过直接在硬件中提供基本的操作系统服务,如上下文切换和资源管理,将TCB减少到最低限度。尽管这些硬件服务不能提供与富操作系统相同的功能,但我们认为,对于大多数TEE用例来说,这种方法已经足够了。
控制流完整性 Control-Flow Integrity
RVSCP利用现有的基于海绵的细粒度控制流保护(SCFP)[59]方案来保护安全处理器内的Trustlet免受攻击。SCFP的主要思想是在编译时使用基于海绵的认证加密原语对程序进行加密,并在运行时解密指令。
硬件调度器
RVSCP引入了一个硬件实体,为Trustlet提供最低限度的操作系统功能。该硬件单元负责trustlet间执行安全上下文切换。基于循环的调度机制在内部维护trustlet列表,并且在执行了一定数量的周期之后,进行上下文切换。当执行上下文切换时,硬件实体停止当前的trustlet,将状态存储到安全位置,并加载下一个trustlet的状态。此外,硬件上下文切换机制还交换用于SCFP的解密密钥。
实现
基础环境使用的是 lowRISC[37]平台,包含一个64bit的Rocket chip,外置DDR3的内存,内置BRAM。
用于与安全监视器交互的协议由两个特权命令和四个非特权命令组成。SM所有者使用特权配置命令配置硬件模块的表项。该表包括SM已知的所有外围设备、当前声明状态以及允许请求访问设备的标识符列表。通过使用特权所有权转移配置命令,SM所有者可以定义新的指定SM所有者。安全监视器使用存储在SM模块中的SM Owner ID字段检查发出特权配置命令的权限。非特权命令包括允许issuer访问外围设备的声明和释放请求命令。可以使用状态命令来确定外围设备的许可级别以及它当前是否被声明。
物理内存保护
将外设独占地绑定到某个实体对于DDR3内存是无效的,我们引入了一个MPU模块,被放置于内存管理器和AXI4总线接口之间。MPU允许将物理内存最多分为16个区域,每个区域可以被某个实体独占或者多个实体共享。内存读写请求会被MPU模块进行检查,判断请求中的ID是否匹配。
RVSCP
RVSCP是32bit的RISC v,支持RV32IMXIE ISA。RVSCP通过AXI4总线挂载到AXI4 Crossbar总线上面。
对于RVSCP原型,硬件调度器维护四个虚拟核心的列表:VC0到VC3。在上下文切换时,硬件调度器保存当前SCFP状态和当前寄存器文件,并加载用于下一个trustlet的状态、解密密钥和寄存器文件。这四个虚拟核心共用同一个物理核心,为了区分在RVSCP上执行的四个Trustlet,每个核心都分配了一个单独的进程ID。虽然所有插槽的核心ID都相同,但硬件调度程序直接在AXI4和AXI4-Lite主接口中为每个插槽分别替换进程ID。通过对所有四个线程使用相同的核心ID,可以将外围设备配置为可由所有四个Trustlet访问。
为了将密钥在初始化时加载到安全存储中,我们的原型Trustlet由一个小的、未加密的引导代码和实际的加密代码组成。未加密的引导代码可以生成密钥、从网络加载密钥或直接从二进制文件加载密钥。
每个虚拟处理器核心执行的代码都来自片上BRAM:从可声明的BRAM中获取代码,第一个虚拟处理器核心从VC0独占和永久拥有的安全代码存储元件中获取其代码。要将RVSCP的一个虚拟核心用作飞地,发行者需要将Trustlet代码存储在该核心的BRAM上。由于代码存储在独占的安全存储元件中,因此该代码在任何时间点都不能被REE或RVSCP的其他虚拟核改变。
实验
结论
未来与展望
强相关参考论文
论文名称 | 摘要/说明 |
---|---|
Titan: enabling a transparent silicon root of trust for Cloud | 介绍了Google's Titan, 一种基于协处理器的TEE |
https://semiconductor.samsung.com/security-solution/ese-esim/ | 三星的eSE,一种基于协处理器的TEE |
https://patents.google.com/patent/US8832465 | 苹果的安全芯片 |
https://www.microsoft.com/en-us/security/blog/2020/11/17/meet-the-microsoft-pluton-processor-the-security-chip-designed-for-the-future-of-windows-pcs/ | 微软的安全芯片 |